package automat;

import stany.*;

public class AutomatSprzedajacy {
   
  private Stan stan;
  
  private int liczbaGum = 0;
  
  public AutomatSprzedajacy(int liczbaGum) {
    this.liczbaGum = liczbaGum;
    if (liczbaGum > 0)
      stan = new StanNieMaMonety(this);
  }

  public String toString() {
    return ">>> " + stan.getClass().getSimpleName() + " " + liczbaGum;
  }
  
  public void zmienStan(Stan stan) {
    this.stan = stan;
  }
   
  // Pomocnicza funkcja aktualizująca stan zmiennej liczbaGum
  public int aktualizujLiczbeGum() {
    if (liczbaGum > 0)
      liczbaGum--;
    return liczbaGum;
  }
  
  /*
   * Operacje
   */
  public void wlozMonete() {
    stan.wlozMonete();
  }
  
  public void zwrocMonete() {
    stan.zwrocMonete();
  }
  
  public void przekrecGalke() {
    stan.przekrecGalke();
    stan.wydajGume();
  }
    
}
